TOP

SQL 别名

SQL 别名说明

SQL 别名用于为表或表中的列提供临时名称。

别名通常用于使列名更具可读性。

别名仅在当前请求期间存在。

使用 AS 关键字创建别名。


列别名语法

SELECT column_name AS alias_name
FROM table_name

别名表语法

SELECT column_name(s)
FROM table_name AS alias_name

演示数据库

以下是表“Customers”(“客户”)中的示例:

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.5021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.5023Mexico

以及表“Orders”(“订单”)中的示例:

ProductIDOrderIDCustomerIDEmployeeIDOrderDateShipperID
1102489051996-07-043
2102498161996-07-051
3102503441996-07-082

列别名示例

以下 SQL 语句创建两个别名,一个用于 CustomerID 列,另一个用于 CustomerName 列:

Run SQLSELECT CustomerID AS ID, CustomerName AS Customer 
FROM Customers

以下 SQL 语句创建两个别名:一个用于 CustomerName 列,另一个用于 ContactName 列。

注意:如果别名包含空格,则需要双引号或方括号:

Run SQLSELECT CustomerName AS Customer, ContactName AS 'Contact Person' 
FROM Customers

以下 SQL 语句创建一个名为“Address”(“地址”)的别名,该别名连接四列(地址、邮政编码、城市和国家/地区):

SELECT CustomerName, Address + ', ' + PostalCode + ' ' + City + ', ' + Country AS Address 
FROM Customers

要使上述 SQL 语句在 MySQL 中工作,请使用以下命令:

Run SQLSELECT CustomerName, CONCAT(Address,', ',PostalCode,', ',City,', ',Country) AS Address 
FROM Customers

要使上述 SQL 语句在 Oracle 中工作,请使用以下命令:

SELECT CustomerName, (Address || ', ' || PostalCode || ' ' || City || ', ' || Country) AS Address 
FROM Customers

表别名的示例

以下 SQL 语句选择 CustomerID = 4 ("Around the Horn") 的客户的所有订单。 我们使用表“Customers”和“Orders”,并分别为它们指定表别名“c”和“o”(这里我们使用别名来使 SQL 查询更短):

Run SQLSELECT o.OrderID, o.OrderDate, c.CustomerName 
FROM Customers AS c, Orders AS o 
WHERE c.CustomerName = 'Around the Horn' AND c.CustomerID = o.CustomerID

以下 SQL 语句与上面相同,但没有别名:

Run SQLSELECT Orders.OrderID, Orders.OrderDate, Customers.CustomerName
FROM Customers, Orders
WHERE Customers.CustomerName = 'Around the Horn' AND Customers.CustomerID = Orders.CustomerID

别名在以下情况下很有用:

  • 查询涉及多个表;
  • 查询使用函数;
  • 列名太大或难以辨认;
  • 两个或多个柱连接在一起。